#============================================
# #知识点
# 在CPython解释器中GIL是一把互斥锁，用来阻止同一一个进程下的多个线程的同时执行
# 同一个进程下的多个线程无法利用多核优势! ! !

# 疑问:python的多线程是不是一点用都没有? ? ?无法利用多核优势
# 因为cpython中的内存管理不是线程安全的
# 内存管理(垃圾回收机制)
# 1.应用计数
# 2.标记清楚
# 3.分代回收

# 重点:
# 1.GIL不是python的特点而是CPython解释器的特点
# 2.GIL是保证解释器级别的数据的安全
# 3.GIL会导致同一个进程下的多个线程的无法同时执行
# 4.针对不同的数据还是需要加不同的锁处理
# 5.解释型语言的通病:同一个进程下多个线程无法利用多核优势


# 100个线程起起来之后要先去抢GIL
# 我进入io GIL 自动释放但是我手，上还有一个自己的互斥锁
# 其他线程虽然抢到了GIL但是抢不到互斥锁
# 最终GIL还是回到你的手上你去操作数据
#============================================
# 多线程是否有用要看具体情况
# 单核:四个任务(IO密集型\计算密集型)
# 多核:四个任务( I0密集型\计算密集型)

# #计算密集型
# 每个任务都需要10s
# 多核
# 多进程:总耗时10+
# 多线程:总耗时40+

# # I0密集型
# 多核
# 多进程:相对浪费资源
# 多线程:更加节省资源
#============================================

